#include <iostream>
#include <map>

using namespace std;

void print(map<string, int>& mp)
{
    for(auto& p : mp)
    {
        cout << p.first << " " << p.second << endl;
    }
}

// 统计一堆字符串中，每一个字符串出现的次数
void fun()
{
    string s;
    map<string, int> mp; // <字符串，字符串出现的次数>

    for(int i = 1; i <= 10; i++)
    {
        cin >> s;
        mp[s]++; // 体现了 operator 的强大
    }

    print(mp);

}

int main()
{
    fun();

    // map<string, int> mp;

    // // 插入
    // mp.insert({"张三", 1});
    // mp.insert({"李四", 2});
    // mp.insert({"王五", 3});

    // // print(mp);

    // // operator[] 可以让 map 像数组一样使用
    // cout << mp["张三"] << endl;
    // mp["张三"] = 110;
    // cout << mp["张三"] << endl;

    // // 注意事项：operator[] 有可能会向 map 中插入本不想插入的元素
    // // [] 里面的内容如果不存在 map 中，会先插入，然后再拿值
    // // 插入的时候：第一个关键字就是 [] 里面的内容，第二个关键字是一个默认值
    // if(mp.count("赵六") && mp["赵六"] == 4) cout << "yes" << endl;
    // else cout << "no" << endl;

    // // 删除
    // mp.erase("张三");

    // print(mp);


    return 0;
}